Method of unifying control of contact center system

ABSTRACT

A method and apparatus are provided for processing messages in a networked automatic contact distribution system having a plurality of computer processors. The method includes the steps of a processor of the plurality of processors receiving a configuration message, the processor determining a type of the configuration message from metadata contained within the message and the processor executing a predetermined set of steps based upon the determined type of the configuration message.

FIELD OF THE INVENTION

The field of the invention relates to communication system and, moreparticularly, to automatic contact distributors.

BACKGROUND OF THE INVENTION

Call centers are generally known. Call centers are typically usedwherever an organization has occasion to handle a multitude ofindividual contacts with clients. Usually, the organization will hire anumber of agents to interact with clients.

Contacts between the organization and clients may be handled under anyof a number of different communication mediums. For example, contactsmay be initiated through the public switch telephone network (PSTN) by aclient calling a telephone number provided by the organization.Alternatively, the organization may place telephone calls to itsclients. In either case, connection of the telephone call with an agentmay be handled by an automatic call distributor (ACD).

Similarly, contacts with clients through the Internet may be handled bya host of a contact center. Contacts in this case may be handled under avoice format (e.g., VoIP) or under a text format (e.g., e-mail, chat,etc.).

Once a call is detected, the ACD may select an agent to handle the call.The agent may be selected based upon qualifications in handling the typeof call involved, based upon experience with the client involved orbased upon idle time. Once an agent is selected, the ACD mayautomatically route the call to a telephone of the selected agent.

In order to serve large markets, ACDs are often used as networkedsystems with locations in many different areas. When used in such acontext, the message traffic among ACDs becomes significant. Because ofthe importance of networked ACDs, a need exists for methods of reducingtraffic among ACDs in networked systems.

SUMMARY

A method and apparatus are provided for processing messages in anetworked automatic contact distribution system having a plurality ofcomputer processors. The method includes the steps of a processor of theplurality of processors receiving a configuration message, the processordetermining a type of the configuration message from metadata containedwithin the message and the processor executing a predetermined set ofsteps based upon the determined type of the configuration message.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an automatic contact distribution system inaccordance with an illustrated embodiment of the invention; and

FIG. 2 is a block diagram of a configuration message processing systemused by the system of FIG. 1.

DETAILED DESCRIPTION OF AN ILLUSTRATED EMBODIMENT

While call centers work well, they are constantly evolving and, in somecases, require replacement or expansion. When a call center made by afirst call center provider must be replaced or expanded, theorganization will often consider and may, in fact, purchase a callcenter from a competitor for use with existing, legacy call centersbecause of a lower price.

However, the software and operating philosophy used to control callcenters may be radically different among call center providers. In orderto allow call centers to exchange information, a software adapter orterminal adapter may be needed to allow a first call center to exchangeinformation with a second call center.

Moreover, the information exchanged among call centers may be extensive.For example, agents often possess specialized knowledge that may beneeded by clients throughout the call center system even though an agentwith specialized knowledge may work at only one call center. In thiscase, the agent may be shared among the call centers of the call centersystem.

In order to share agents among call centers, a great deal of informationmust be shared among the call centers. Whenever a shared agent signsinto the system, the information must be shared among the call centers.If the agent is assigned to a call, then the other call centers must benotified so that they don't assign another call at the same time.

Other information that may need to be shared among call centers mayinclude an identification of call groups and the skills possessed byeach a call group. The identification of call groups and skillspossessed by the call group is important in selecting a call group tohandle a call. Information that may also be shared among call centersmay include supervisor assignments and telephone directory information.

FIG. 1 is a block diagram of a call center system 11 that addressesthese problems shown generally in accordance with an illustratedembodiment of the invention. Included within the call center system isan administration system (admin system) 10 for administering operationof a number of dissimilar call centers 12, 14 of the call center system.While FIG. 1 shows only two call centers 12, 14, it should be understoodthat the call center system of FIG. 1 may include any number of callcenters 12, 14. Moreover, the term “dissimilar call centers” should beunderstood to mean call centers that do not share the same command andcontrol structure. For example, a First Point Spectrum ACD call centermade during the late 1990s does not use the same command and controlstructure as an Aspect ACD made during the same time period.

Under the embodiment illustrated in FIG. 1, the admin system 10 mayinclude an admin server 16 coupled to the call centers 12, 14 throughthe Internet 24 and a respective terminal adapter 18, 20. One or moreadministrative persons (users) working through a terminal (the personand terminal together hereinafter referred to as an “admin user”) 19 mayaccess a website 17 of the server 16 through the Internet 24. Theoperation of the call centers 12, 14 may be controlled through theactivities of an administrative user 19 through the server 16. While theadmin user 19 and server 16 are shown connected through the Internet 24,the admin user 19 may be co-located and be directly connected to theserver 16.

While the call centers 12, 14 may be different in structure andoperation, the use of the terminal adapters 18, 20 may allow the systemof FIG. 1 to be operated as if it were one large call center. Moreover,the server 16 may have a completely different control structure than anyof the call centers 12, 14 where there is nothing in common among thecall centers 12, 14. This allows the server 16 to operate under a “bestof breed” philosophy where the terminal adapters 18, 20 accommodate anydifferences.

Included within the terminal adapters 18, 20 may be a configurationmessage processor 74 that controls processing and/or forwarding ofconfiguration messages based upon a type of the configuration message.The type of a configuration messages is determined by matching metadatacontained within the configuration messages with criteria containedwithin a configuration message processing table. One or more subroutinesmay be associated with each message type that may then be used toprocess the configuration message in accordance with the determined typeof configuration message.

The configuration message processor 74 functions as a programmableinterface that controls the flow of configuration messages among thedifferent parts of the call center system 11. For example, if an agentis to be shared among more than one call center 12, 14, then informationabout the agent (e.g., an agent's directory number, group assignment,supervisor assignment, skills, etc.) would need to be shared among thecall centers 12, 14. However, if an agent were not shared, then anyconfiguration messages about the agent would not be relevant to any ofthe other call centers 12, 14 and would simply add to the traffic amongthe other call centers 12, 14.

In simple conceptual terms, the admin system 10 sits on top of existingadministrative interface applications and databases of the call centers12, 14. “Sitting on top of” means that the administrative interfaces anddatabases of the call centers 12, 14 do not rely upon the admin system10 for proper operation. The admin system 10 uses the interfaces of thecall systems 12, 14 to read data from their databases and to writechanges into them, but it does not attempt to replace them. Instead, theadmin system 10 acts as a web wrapper, providing a unified view ofadministrative data, but not requiring any changes to the existingsystems 12, 14. As much as possible, admin system 10 simply acts asanother client to the current administrative interfaces of the callcenters 12, 14, which allows existing administrative tools to continueworking independently, particularly in the case where the connection ofthe call centers 12, 14 with the admin system 10 is lost.

In effect, the admin system 10 controls the call centers 12, 14 bychanging the data within the databases of the call centers 12, 14. Thishas the advantage that the call centers 12, 14 function properly withoutany other input or control from the admin system 10. If the admin system10 should malfunction or otherwise become inoperative, then data may beentered directly through existing admin services available within thecall centers 12, 14.

Since the server 16 merely changes data within the call centers 12, 14,there is no limit to the number of servers 16 within the system ofFIG. 1. While one is shown in FIG. 1, the system of FIG. 1 may containtwo or more.

The ability to read data from the call centers 12, 14 allows resourcesto be shared among call centers 12, 14. For example, the entire list ofagents 54, 56, 58, 60 may be visible through the server 16. However,some agents may be better skilled than others. Alternatively, someagents may have specific skills that are more in demand than others. Inthese cases, some agents may be shared among call center products andcenters and some may not be shared.

In addition, there are other extraordinary circumstances where agentsmay need to be shared, such as hardware or power failures at somelocations. Other extraordinary where agent sharing may be necessary mayinclude loss of network connectivity or natural disasters.

Where extraordinary circumstances occur, call centers may need torapidly reconfigure their agent populations. For example, if due tonatural disaster (e.g., an earthquake), the call center system 11 shouldloose one or more of the call centers, then the system 11 may need to bereconfigured to continue operation. Agents of the remaining call centersmay need to be reapportioned or assigned to different agent groups tobetter serve the remaining system load.

In general, the call centers 12, 14 may rely upon a number of databaseinterfaces. In one embodiment, five administrative interfaceapplications may be used. The five are: 1) a work force management (WFM)interface 22, 30; 2) a call center management interface 24, 32; 3) aquality management interface 26, 34); 4) a directory access protocol(DAP) interface 28, 36 and 5) a reporting database interface 66, 68. TheWFM interface 22, 30 provides access to a WFM database 23, 31 within thecall center 12, 14 and is used by a WFM application within therespective call centers 12, 14. The WFM application operates on a firstlevel to maintain a list of signed-in agents and also to predict a workforce (e.g., the number of agents) needed during any one time periodbased upon historical records and current predictions. The WFM may alsomonitor call queues of each agent group to determine how long callsremain in queue for the group and other statistics about agentperformance. Other statistics may include calls per hour, abandonedcalls, average call handling time, identifiers of agent groups and anidentifier of each agent assigned to each of the identified agentgroups.

The call center management interface 24, 32 provides access to a callmanagement database 25, 33 within each respective call center 12, 14.The call management database 25, 33 is used by a call managementapplication to maintain a list of agents and the qualification of eachagent. The call management application may also be used to select agentsto handle calls based upon any appropriate method (e.g., agent idletime, agent skill, etc.). The call management application may also trackagent availability.

The quality management interface 26, 34 provides access to a qualitymanagement database 27, 35 within each of the respective call centers12, 14. The quality management database 27, 35 is used by a qualitymanagement application to record calls and other data about callhandling by agents.

The directory access protocol interface 28, 36 provides access to adirectory access protocol database, 29, 37. The directory accessprotocol database 29, 37 may be accessed by a lightweight directoryaccess protocol (LDAP) to provide access control to the call centers 12,14. The directory access protocol database contains a list of users,passwords and access rights of each user.

The reporting interface 66, 68 provides access to a report database 67,69 (e.g., viewpoint, datamart, etc). The report databases 67, 69 maycollect data regarding any of a number of call center operations (e.g.,agent performance, call statistics, etc.). Reporting data may becollected from other interfaces 22, 30; 24, 32; 26, 34; 28, 36 or may begenerated independently.

Located within the server 16 may be a respective workforce managementapplication (WFMA) 38, a call center management application (CCMA) 40, aquality management application (QMA) 42, a data access protocolapplication (DAPA) 44 and a reporting application 70. Each of theapplications 38, 40, 42, 44, 70 are accessible by the admin user 19through the website 17. The applications 38, 40, 42, 44, 70 serve atleast some of the same function as the respective applications 22, 30;24, 32; 26, 34; 28, 36; 66, 68 of the call centers 12, 14 except that atleast some of the respective applications of the call centers 12, 14operate under a different protocol than the respective applications 38,40, 42, 44, 70 of the admin server 16.

The applications 38, 40, 42, 44, 70 of the server 16 differ from thecorresponding applications 22, 30; 24, 32; 26, 34; 28, 36; 66, 68 of thecall centers 12, 14 in that they operate over a larger database and,therefore, can achieve economies of scale and efficiency that are notpossible by the call centers 12, 14 working in isolation.

In general, access to the call centers 12, 14 by the applications 38,40, 42, 44, 70 of the server 16 is provided through a respectiveterminal adapter 18, 20. In each case, instructions from theapplications 38, 40, 42, 44, 70 are executed on the call centers 12, 14by mapping the instructions from the protocol of the server 16 to therespective protocols of the call centers 12, 14 within a mappingprocessor 84 of the respective terminal adapters 18, 20. Once aninstruction from an application 38, 40, 42, 44, 70 has been mapped tothe appropriate protocol, the instruction may be executed by therespective database interfaces 22, 30; 24, 32; 26, 34; 28, 36; 66, 68.

Instructions from the server 16 to the call centers 12, 14 may involveand cause a change to the respective databases 23, 25, 27, 29, 31, 33,35, 37, 67, 69 of the call center 12, 14 or may be a request for datafrom the database. Where the request is for data, the database interface22, 30; 24, 32; 26, 34; 28, 36; 66, 68 may retrieve the requested dataand compose a message to send the requested data back to the requester.

As the data message is returned, the message may arrive at the terminaladapter 18, 20 providing the original instruction. In response, theterminal adapter 18, 20 may reformat the data message into a format ofthe admin server 16.

Included within the admin server 16 may be one or more databases 46, 48,50, 52, 72 that correspond to the applications 38, 40, 42, 44, 70. Underone illustrated embodiment, all or a portion of the data within therespective databases 23, 25, 27, 29, 31, 33, 35, 37, 67, 69 associatedwith the call centers 12, 14 may be substantially duplicated withinrespective databases 46, 48, 50, 52, 72 of the admin server 16. In thisregard, data from WFM databases 23, 31 may be merged with thecorresponding WFM database 46 to form a consolidated database of WFMinformation. Similarly, data from the CCM databases 25, 33 may be mergedin CCM database 48, data from QMI databases 27, 35 may be merged in QMIdatabase 50, data from DAP databases 29, 37 may be merged in DAPdatabase 52 and data from the reporting databases 67, 69 may be mergedin reporting database 72. This may be accomplished by the application22, 30; 24, 32; 26, 34; 28, 36 associated with the database interfacestracking and forwarding the changes or by the applications 38, 40, 42,44 periodically requesting such data.

By having a duplicate of the data within the call centers 12, 14, theadmin server 16 is able to control the overall allocation of resourceswithin the call center system 11. For example, agents 54, 56 may bephysically connected to call center 12 and agents 58, 60 may bephysically connected to call center 14. In addition, some agents (localarea network (LAN) agents) may not have a physical connection to anycall center, and can be quickly and easily moved from call center tocall center regardless of physical location. However, agents 54, 56, 58,60 may also be shared by all call centers 12, 14. The sharing of agentsamong call centers 12, 14 is important because loading is not alwaysequal among call centers. In addition, not all agents have equal skillsor equally important skills. Agents 54, 56, 58, 60 with greater or rarerskills are often put to greater use when shared among a larger clientbase. This can be especially important during extraordinarycircumstances where due to hardware or electric failures or telephone orInternet outages at a single site or at a few sites, agents must bereassigned in support of continued operation.

However, the design supports an embodiment where the database is notreplicated in the admin server and instead, it relies upon the callcenter product databases 23, 25, 27, 29, 31, 33, 35, 37, 67, 69 to bethe only persistent storage of their data.

An admin user 19 may access the workforce management application 38within the admin server 16 and can view the overall workforce status ofthe system of FIG. 1. For example, on a first screen, the user 19 mayview a list of agents 54, 56, 58, 60 logged into the system of FIG. 1.On another screen, the user can view the performance of each call center12, 14. More specifically, the availability of data from the WFMdatabase 23 allows the admin user 19 to view such performance statisticssuch as average delay to answer, the average call handling time,schedule adherence metrics, etc. By viewing performance statistics, suchas call queues, the admin user 19 has the ability to determine whetherthe call centers 12, 14 are performing at an optimum level, areoverloaded or are under utilized.

Moreover, where the admin user 19 should detect that a call center 12,14 is overloaded, the admin user 19 may simply log onto the call centermanagement application 40 and transfer agents. For example, if a firstset of agents 54, 58 were assigned to a first agent group (group “A”)and a second set of agents 56, 60 were assigned to a second agent group(group “B”) and group A were overloaded, then the admin user 19 couldreassign agents as needed. In this example, the admin user 19 would loginto the call center management application 40 and select group B anddelete agent 60. The admin user 19 may then select group A and add agent60. In both cases, the deletion and addition steps would cause aninstruction to be generated by the call center management application 40that would be transferred to and executed by the call centers 12, 14.

In order to control the proliferation of configuration messages, theconfiguration message processor 74 within each terminal adapter 18, 20may receive and process configuration messages 101 arriving from theadmin system 10 or from the respective call center 12, 14. In order toreceive configuration messages, the configuration message processor 74may open one or more communication channels or sockets (e.g., a TCP/IPport, IP multicast port, UDP port, wireless port, etc.) 76 within aterminal adapter 18, 20 for purposes of monitoring for configurationmessages.

FIG. 2 is a block diagram of a configuration message processor 74.Included within the configuration message processor 74 may be a protocolprocessor 100 that identifies a protocol of the configuration message.For example, a configuration message from a First Point Spectrum callcenter may use a different proprietary protocol for configurationmessages than an Aspect ACD. The protocol processor 100 may determine aprotocol of the configuration messages by analyzing a preamble of theconfiguration message.

In addition to determining the protocol of any received configurationmessages 101, the protocol processor 74 may also identify a locationwithin the message where metadata 103 resides. The metadata 103 may beused to identify the type of configuration message 101 involved. As afirst step, the protocol of the message 101 may be determined from atable of protocol files 102, 104 within a memory by comparing thepreamble of a message with a set of distinguishing characteristics ofeach protocol. In this regard, the first data field 106, 110 of the file102, 104 may contain an identifier and identifying characteristics(e.g., a model preamble) of a protocol and a second data field 108, 112may identify a location of the metadata 103 within the message 101.

Once the location of the metadata 103 has been determined, aconfiguration message type determining or classification processor 114may retrieve the metadata 103 and determine a type of configurationmessage involved. The typing processor 114 may determine the type ofconfiguration message 101 by comparing the metadata 103 with a set ofcriteria 118, 120 where a criteria 118, 120 is provided for each type ofconfiguration message 101 that is to be identified.

It should be noted that the metadata 103 may include a single field ormay include a number of fields. Accordingly, classification of theconfiguration message 101 into one of many types may include acomparison of the metadata 103 with a single criterion 120 or thecomparison may involve a criteria 118 with a number of tests 122, 124where each test involves a comparison and possibly matching of eachcriterion 122, 124 with a content of a respective field of the metadata103.

Associated with each criteria 118, 120 is a respective softwareprocessing module (e.g., software routine, subroutine, etc.) 126, 128.The determination of the type of configuration message 101 by matchingof a message 101 with a criteria 118, 120, in turn, activates therespective processor 126, 128 to perform some act or set ofpredetermined steps regarding the configuration message 101. The act maybe to delete the configuration message 101 or the act may be to send theconfiguration message 101 to some other predetermined destination withinthe system 11.

For example, the configuration message 101 may be an agent 54 loggingout of the call center 12. When the agent 54 signs out of the callcenter 12, a sign off message is sent from a terminal of the agent 54 tothe WFM interface 22. In response, the WFM interface 22 may determinewhat agent groups that the agent 54 is logged into and remove theagent's name from the list of active agents for the respective groups.

In addition, the WFM interface 22 may also compose a systemconfiguration message 101 removing the agent 54 from any system lists.If the call center 12 is a First Point Spectrum ACD call center, thenthe configuration message 101 would be composed under the First Pointprotocol. If the call center 12 is an Aspect ACD call center, then theconfiguration message 101 would be composed under the Aspect protocol.The composed configuration message 101 would contain a field of metadata103 in the appropriate location identifying the configuration message101 as an agent sign off.

As mentioned above, the metadata 103 of the composed message 101 mayinclude a number of fields. The fields may include a first field thatidentifies the message 101 as a sign off message from an agent. Otherfields may include an identifier of the agent group and an identifier ofthe agent 54. The fields may also include an identifier of the callcenter 12 if not apparent from the content of the preamble.

Once the configuration message 101 has been composed, the WFM interface22 may publish the message 101. Publishing the message 101 means thatthe message 101 is sent to the terminal adapter 18.

Within the terminal adapter 18, the message may be sent to theconfiguration message processor 74. The protocol processor 100 withinconfiguration processor 74 may first determine the protocol of themessage 101 from the preamble and the location of the metadata 103 fromthe determined protocol. Upon determining the location of the metadata103, the protocol processor 100 may retrieve the metadata 103 from themessage 101 and transfer it to the classification processor 114.

Within the classification processor 114, the metadata 103 may becompared with the criteria 118, 120 for determination of the type ofmessage involved. It should be noted, in this case, that more than onematch is possible.

For example, a first criteria (e.g., criteria 120) and associatedsoftware module 128 may be used to update the WFM database 46 on theserver 16. Another criteria (e.g., criteria 118) and associated softwaremodule 126 may be used to log the agent 54 out of another call center 14in the case where the agent 54 is shared among call centers 12, 14.

In the case of the WFM database 46, the criteria 120 may only includeindication that the configuration message is a log off message. Thiswould be the case because the WFM database 46 would want to receive logoff messages from any call centers 12, 14.

In the case of shared agents, the criteria 118 may include theidentifier of the call center 12, the identifier of the call group andthe identifier of the agent 54. In this case, the criteria 118 would bemore extensive because the call center 14 would only want to receive logoff messages from the other call center 12 if the agent 54 were shared.

In either case, the classification processor 114 may match theconfiguration message with the first and second criteria 118, 120. Inresponse, the classification processor 114 may transfer theconfiguration message 101 to the respective software modules 126, 128for processing.

Upon the receiving the configuration message 101, the first module 126may reformat the configuration message 101 for transfer to the WFMapplication 38. Reformatting, in the case, may mean altering the message101 by adding the destination address of the WFM application 38 to themessage 101. The first module 126 may then re-send the altered message101 through the communication channel 76. Upon receiving the alteredmessage 101, the WFM application 38 may delete the agent 54 from a listof active agents within the database 46.

Similarly, the second module 128 may reformat the configuration message101 for transfer to the WFM application 30 within the other call center14. Reformatting, again, may mean altering the message 101 by adding thedestination address of the WFM application 30 to the message 101. Thesecond module 128 may then re-send the altered message 101 through thecommunication channel 76. Upon receiving the altered message 101, theWFM application 30 may delete the agent 54 from a list of active agentswithin the database 31.

In another example, a call center supervisor working through a terminal78 may transfer an agent (e.g., agent 58) from a first call group to asecond call group. In order to efficiently manage operation of the callcenter system 11, the server 16 must always be notified of such changes.In this case, the supervisor 78 may access the WFM interface 30, selectthe agent 58 and transfer the agent 58.

In response, the WFM interface 30 may delete the agent 58 from a list ofagents for the first call group and add the agent 58 to a list of agentsfor the second call group within the WFM database 31. In addition, theWFM interface 22 may compose and send a system configuration message 101to the terminal adapter 20 announcing the change. The systemconfiguration message 101 would include an identifier that the change isan agent transfer, an identifier of the agent, an identifier of anysource group and an identifier of a destination group.

Within the terminal adapter 20, the configuration message processor 74may receive the message 101 and recover the metadata 103 as discussedabove. The metadata 103 may also be transferred to the classificationprocessor 114, as described above, where the metadata 103 is comparedwith the matching criteria 118, 120.

The matching criteria 118, 120 would include at least the identifier ofthe message 101 as being an agent transfer. The associated softwaremodule 126, 128 would alter the message 101 to re-route the message 101to the WFM application 38 and send the altered message 101 as discussedabove. The WFM application 38 would receive the altered message and makethe appropriate changes in the agent lists within the WFM database 46.

In another example, an agent working through a terminal 60 having nosystem access may access a data access protocol interface 36 and changehis password. In response, the data access protocol interface 36 mayenter the password change and compose and send a system configurationmessage 101 to the terminal adapter 20 announcing the change. The systemconfiguration message 101 would include at least an identifier of theagent, an old password and a new password within the metadata 103.

Within the terminal adapter 20, the configuration message processor 74may receive the message 101 and recover the metadata 103 as discussedabove. The metadata 103 may also be transferred to the classificationprocessor 114, as described above, where the metadata 103 is comparedwith the matching criteria 118, 120. However, since the agent 60 has nosystem access, the metadata 103 from the password change would not finda match within the criteria 118, 120. Since a match was not found theconfiguration message 101 would be discarded.

In another example, an admin user working through a terminal 19 havinguniversal access may access a data access protocol interface 44 andchange his password. In response, the data access protocol interface 44may enter the password change and compose and send a systemconfiguration message 101 to the terminal adapters 18, 20 announcing thechange. The system configuration message 101 would include at least anidentifier of the admin user 19, an old password and a new passwordwithin the metadata 103.

Within the terminal adapters 18, 20, the configuration message processor74 may receive the message 101 and recover the metadata 103 as discussedabove. The metadata 103 may also be transferred to the classificationprocessor 114, as described above, where the metadata 103 is comparedwith the matching criteria 118, 120. In this case, since the admin user19 has universal access, the metadata 103 from the password change wouldfind a match within the criteria 118, 120. Since a match was found theconfiguration message 101 would be forwarded to the respective dataaccess protocol interfaces 28, 30 the respective data access protocolinterfaces 28, 30 would enter the password change in the respective dataaccess protocol databases 29, 37.

As another example, the supervisor 78 may hire a new agent 58 and maywant to register the agent 58 with the system 11. Registration mayrequire that the new agent 58 be added to the WFM database 31. It wouldalso be necessary that the new agent 58 be added to a business system 80that tracks the activity of the agent (e.g., sales).

In order to add the agent 58, the supervisor 78 may log into the WFMinterface 30 and open a new agent file. The supervisor 78 may enter aname of the agent 58 and any other information relevant to registeringthe agent 58.

In response, the WFM interface 30 may enter the information of the newagent 58 within the WFM database 31 and generate a configuration message101. The configuration message 101 may include, as metadata 103, atleast an identifier that the message is an agent registration message.

The message 101 may be received by the configuration message processor74. The configuration processor 74 may retrieve the metadata 103 andtransfer the metadata 103 to the classification processor 114. Theclassification processor 114 may compare the metadata 103 to thecriteria 118, 120.

In this case, at least one of the criteria 118, 120 would be arequirement that new agents be registered with the business system 80.The criteria 122, 124 may simply be that any new agent configurationmessages are to be forwarded to the business system 80. Accordingly, thecriteria 122, 124 is simply a match between a new agent indicator in themetadata 103 and a new agent criteria 122, 124.

In other examples, the supervisor 78 may transfer an agent or agentsfrom one group to another group. Similarly, the supervisor 78 may changethe skills associated with a group or change an agent's supervisor.Similarly, the supervisor 78 may copy an agent from one call center toanother to facilitate sharing.

A specific embodiment of method and apparatus for controlling theproliferation of configuration messages in a call center has beendescribed for the purpose of illustrating the manner in which theinvention is made and used. It should be understood that theimplementation of other variations and modifications of the inventionand its various aspects will be apparent to one skilled in the art, andthat the invention is not limited by the specific embodiments described.Therefore, it is contemplated to cover the present invention and any andall modifications, variations, or equivalents that fall within the truespirit and scope of the basic underlying principles disclosed andclaimed herein.

The invention claimed is:
 1. A method of processing messages in anetworked automatic contact distribution system having a plurality ofcomputer processors each using a protocol of a plurality of protocolscomprising: a processor of the plurality of processors receiving aconfiguration message composed in one of the plurality of protocols; theprocessor determining the protocol of the configuration message out ofthe plurality of protocols by comparing a preamble of the configurationmessage with a set of distinguishing characteristics of each of theplurality of protocols, and identifying a location of metadata containedwithin the configuration message based upon the protocol of theconfiguration message; the processor determining a type of a pluralityof types of the configuration message from the metadata contained withinthe message; and the processor executing a predetermined set of stepsbased upon the determined type of the configuration message.
 2. Themethod of processing messages as in claim 1 further comprisingreformatting the configuration message after determining the type of theconfiguration message.
 3. The method of processing messages as in claim1 wherein the step of determining the type further comprises matchingthe metadata with a respective criteria for each of a plurality ofpredetermined types of configuration messages.
 4. The method ofprocessing messages as in claim 3 wherein the step of matching themetadata with the criteria further comprises activating a subroutineassociated with the matched criteria.
 5. The method of processingmessages as in claim 4 wherein the step of receiving a configurationmessage further comprises opening a socket to a second processor of theplurality of processors under a protocol selected from the groupconsisting of TCP/IP, IP multicast, UDP and wireless.
 6. The method ofprocessing messages as in claim 5 wherein the configuration messagefurther comprises a new agent registration message and wherein thesubroutine registers the new agent with a business system.
 7. The methodof processing messages as in claim 5 wherein the configuration messagefurther comprises an agent logging out of an automatic contactdistributor of the networked automatic contact distribution network andwherein the subroutine removes the agent from an agent's list withinanother automatic call distributor of the networked automatic contactdistribution network.
 8. The method of processing messages as in claim 5wherein the configuration message further comprises an agent changinghis password and wherein the subroutine writes a new password selectedby the agent into a plurality of databases based upon the accessprivileges granted to the agent.
 9. The method of processing messages asin claim 1 wherein the processor further comprises a terminal adaptercoupled to an automatic contact distributor where the terminal adapteris disposed between an automatic contact distributor and anadministrator of the of the networked automatic contact distributionsystem.
 10. The method of processing messages as in claim 1 furthercomprising moving an agent from one group to another group.
 11. Themethod of processing messages as in claim 1 further comprising changingthe skills associated with a group.
 12. The method of processingmessages as in claim 1 further comprising changing an agent's supervisorassignment.
 13. The method of processing messages as in claim 1 furthercomprising moving or copying an agent from one call center to anothercall center.
 14. An apparatus for processing messages in a networkedautomatic contact distribution system having a plurality of computerprocessors each using a protocol of a plurality of protocols comprising:means within a processor of the plurality of processors for receiving aconfiguration message composed in one of the plurality of protocols;means within the processor for determining the protocol of theconfiguration message of the plurality of the protocols by comparing apreamble of the configuration message with a set of distinguishingcharacteristics of each of the plurality of protocols, and foridentifying a location of metadata contained within the configurationmessage based upon the protocol of the configuration message; meanswithin the processor for determining a type of a plurality of types ofthe configuration message from the metadata contained within themessage; and means within the processor for executing a predeterminedset of steps based upon the determined type of the configurationmessage.
 15. The apparatus for processing messages as in claim 14further comprising means for reformatting the configuration messageafter determining the type of the configuration message.
 16. Theapparatus for processing messages as in claim 14 wherein the means fordetermining the type further comprises means for matching the metadatawith a respective criteria for each of a plurality of predeterminedtypes of configuration messages.
 17. The apparatus for processingmessages as in claim 16 wherein the means for matching the metadata withthe criteria further comprises means for activating a subroutineassociated with the matched criteria.
 18. The apparatus for processingmessages as in claim 17 wherein the means for receiving a configurationmessage further comprises means for opening a socket to a secondprocessor of the plurality of processors under a protocol selected fromthe group consisting of TCP/IP, IP multicast, UDP and wireless.
 19. Theapparatus for processing messages as in claim 18 wherein theconfiguration message further comprises a new agent registration messageand wherein the subroutine registers the new agent with a businesssystem.
 20. The apparatus for processing messages as in claim 18 whereinthe configuration message further comprises an agent logging out of anautomatic contact distributor of the networked automatic contactdistribution network and wherein the subroutine removes the agent froman agent's list within another automatic call distributor of thenetworked automatic contact distribution network.
 21. The apparatus forprocessing messages as in claim 18 wherein the configuration messagefurther comprises an agent changing his password and wherein thesubroutine writes a new password selected by the agent into a pluralityof databases based upon the access privileges granted to the agent. 22.The method of processing messages as in claim 14 wherein the processorfurther comprises a terminal adapter coupled to an automatic contactdistributor where the terminal adapter is disposed between an automaticcontact distributor and an administrator of the of the networkedautomatic contact distribution system.
 23. An apparatus for processingmessages in a networked automatic contact distribution system having aplurality of computer processors each using a protocol of a plurality ofprotocols comprising: a processor of the plurality of processors thatreceives a configuration message composed in one of the plurality ofprotocols; a protocol processor that determines the protocol of theconfiguration message by comparing a preamble of the configurationmessage with a set of distinguishing characteristics of each of theplurality of protocols and that identifies a location of metadatacontained within the configuration message based upon the protocol ofthe configuration message; a classification processor that classifiesthe configuration message into one of a plurality of different type ofconfiguration messages from the metadata contained within theconfiguration message; and a respective subroutine associated with, eachof the plurality of different types of configuration messages thatprocesses the configuration message based upon the classification of theconfiguration message.
 24. The apparatus for processing messages as inclaim 23 further comprising reformatting the configuration message afterdetermining the type of the configuration message.
 25. The apparatus forprocessing messages as in claim 23 wherein the classification processorfurther comprises a respective criteria associated with each of aplurality of predetermined types of configuration messages that ismatched with the metadata to determine the type of configurationmessage.
 26. The apparatus for processing messages as in claim 23further comprises a socket connecting the processor to a secondprocessor of the plurality of processors under a protocol selected fromthe group consisting of TCP/IP, IP multicast, UDP and wireless.
 27. Theapparatus for processing messages as in claim 23 wherein theconfiguration message further comprises a new agent registration messageand wherein the subroutine registers the new agent with a businesssystem.
 28. An apparatus for processing messages in a networkedautomatic contact distribution system having a plurality of computerprocessors each using a protocol of a plurality of protocols comprising:a processor of the plurality of processors that receives a configurationmessage composed in one of the plurality of protocols; a protocolprocessor that determines the protocol of the configuration message bycomparing a preamble of the configuration message with a set ofdistinguishing characteristics of each of the plurality of protocols andthat identified a location of metadata contained within theconfiguration message based upon the protocol of the configurationmessage; a classification processor that determines a type of aplurality of types of the configuration message by comparing themetadata contained within the configuration message with a plurality ofcriteria; and a plurality of subroutines where each subroutine of theplurality of subroutines is associated with respective criteria of theplurality of criteria and that executes a predetermined set of steps toprocess the configuration message based upon the determined type of theconfiguration message.
 29. A method of processing messages in anetworked automatic contact distribution system having a plurality ofcomputer processors each using a protocol of a plurality of protocolscomprising: a first processor of the plurality of processors receiving aconfiguration message composed in one of the plurality of protocols froma second processor of the plurality of processors; the first processordetermining the protocol of the configuration message by comparing apreamble of the configuration message with a set of distinguishingcharacteristics of each of the plurality of protocols, determining alocation of metadata contained within the configuration message basedupon the protocol of the configuration message and determining a type ofa plurality of types of the configuration message from a predeterminedfield of the configuration message; and the first processor executing apredetermined set of steps based upon the determined type of theconfiguration message.